package com.je.app.view.popUp;

import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import javax.swing.UIManager;

import com.je.app.control.ControlSesion;
import com.je.app.view.MainFrame;
import com.je.app.view.MainFrame.MessageType;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.SystemColor;

import javax.swing.SwingConstants;

import java.awt.Font;

import javax.swing.JSeparator;

public class RegistrarUsuario extends JDialog{
	private JTextField fieldId;
	private JPasswordField fieldContrasenia;
	private JTextField txtUsuario;
	private JTextField txtContrasea;
	private JTextField txtRepetirOntrasea;
	private JPasswordField fieldContraseniaRepeticion;
	private JTextField txtNombre;
	private JTextField fieldNombre;
	private JTextField txtApellido;
	private JTextField fieldApellido;
	private JButton botonCancelar;
	private JTextField txtIngreseSusDatos;
	private JSeparator separator;


	public RegistrarUsuario(){
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

		getContentPane().setLayout(null);
		
		try{
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		}
		catch(Exception e) {
			
		}

		setSize(402,352);
		setResizable(false);
		setLocationRelativeTo(null);
		
		separator = new JSeparator();
		separator.setBounds(0, 44, 328, 2);
		getContentPane().add(separator);
		
		fieldId = new JTextField();
		fieldId.setBounds(199, 147, 130, 21);
		getContentPane().add(fieldId);
		fieldId.setColumns(10);
		
		fieldContrasenia = new JPasswordField();
		fieldContrasenia.setBounds(199, 187, 130, 21);
		getContentPane().add(fieldContrasenia);
		
		txtUsuario = new JTextField();
		txtUsuario.setHorizontalAlignment(SwingConstants.RIGHT);
		txtUsuario.setText("ID:");
		txtUsuario.setBorder(null);
		txtUsuario.setEditable(false);
		txtUsuario.setColumns(10);
		txtUsuario.setBounds(132, 143, 55, 29);
		getContentPane().add(txtUsuario);
		
		txtContrasea = new JTextField();
		txtContrasea.setHorizontalAlignment(SwingConstants.RIGHT);
		txtContrasea.setText("Contrase\u00F1a:");
		txtContrasea.setBorder(null);
		txtContrasea.setEditable(false);
		txtContrasea.setColumns(10);
		txtContrasea.setBounds(122, 183, 67, 29);
		getContentPane().add(txtContrasea);
		
		JButton botonAceptar = new JButton("Aceptar");
		botonAceptar.setBackground(SystemColor.activeCaptionBorder);
		botonAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String nombre = fieldNombre.getText();
				String apellido = fieldApellido.getText();
				String id = fieldId.getText();
				String contrasenia = fieldContrasenia.getText();
				String contraseniaRepeticion = fieldContraseniaRepeticion.getText();
				
				boolean hecho = ControlSesion.getInstance().registrarUsuario(id, nombre, apellido, contrasenia, contraseniaRepeticion);
				
				if(hecho){
					
					//Mostrar mensaje de hecho, e informar que el administrador debe admitirlo.
					JOptionPane.showMessageDialog(null, "\u00A1El registro ha sido exitoso!\nEl administrador debe validar su registro."
							,"Mensaje de error", JOptionPane.INFORMATION_MESSAGE);
					dispose();
					
					//volver a la emergente validar usuario.
					new ValidarUsuario();	
				}
			}
		});
		botonAceptar.setBounds(78, 270, 95, 32);
		getContentPane().add(botonAceptar);
		
		txtRepetirOntrasea = new JTextField();
		txtRepetirOntrasea.setText("Repetir contrase\u00F1a:");
		txtRepetirOntrasea.setHorizontalAlignment(SwingConstants.RIGHT);
		txtRepetirOntrasea.setEditable(false);
		txtRepetirOntrasea.setColumns(10);
		txtRepetirOntrasea.setBorder(null);
		txtRepetirOntrasea.setBounds(80, 223, 109, 29);
		getContentPane().add(txtRepetirOntrasea);
		
		fieldContraseniaRepeticion = new JPasswordField();
		fieldContraseniaRepeticion.setBounds(199, 227, 130, 21);
		getContentPane().add(fieldContraseniaRepeticion);
		
		txtNombre = new JTextField();
		txtNombre.setText("Nombre:");
		txtNombre.setHorizontalAlignment(SwingConstants.RIGHT);
		txtNombre.setEditable(false);
		txtNombre.setColumns(10);
		txtNombre.setBorder(null);
		txtNombre.setBounds(132, 62, 55, 29);
		getContentPane().add(txtNombre);
		
		fieldNombre = new JTextField();
		fieldNombre.setColumns(10);
		fieldNombre.setBounds(199, 66, 130, 21);
		getContentPane().add(fieldNombre);
		
		txtApellido = new JTextField();
		txtApellido.setText("Apellido:");
		txtApellido.setHorizontalAlignment(SwingConstants.RIGHT);
		txtApellido.setEditable(false);
		txtApellido.setColumns(10);
		txtApellido.setBorder(null);
		txtApellido.setBounds(132, 102, 55, 29);
		getContentPane().add(txtApellido);
		
		fieldApellido = new JTextField();
		fieldApellido.setColumns(10);
		fieldApellido.setBounds(199, 106, 130, 21);
		getContentPane().add(fieldApellido);
		
		txtIngreseSusDatos = new JTextField();
		txtIngreseSusDatos.setOpaque(false);
		txtIngreseSusDatos.setFont(new Font("Tahoma", Font.PLAIN, 16));
		txtIngreseSusDatos.setText("Ingrese sus datos personales");
		txtIngreseSusDatos.setHorizontalAlignment(SwingConstants.CENTER);
		txtIngreseSusDatos.setEditable(false);
		txtIngreseSusDatos.setColumns(10);
		txtIngreseSusDatos.setBorder(null);
		txtIngreseSusDatos.setBounds(10, 15, 224, 29);
		getContentPane().add(txtIngreseSusDatos);
		
		botonCancelar = new JButton("Cancelar");
		botonCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
				new ValidarUsuario();
			}
		});
		botonCancelar.setBackground(SystemColor.activeCaptionBorder);
		botonCancelar.setBounds(233, 270, 95, 32);
		getContentPane().add(botonCancelar);
		setTitle("Registrar nuevo usuario");
		setVisible(true);
	}
	
}
